实战接口开发:python + flask + mysql + redis(根据反馈,持续细化更新。。。) 您所在的位置:网站首页 python 接口设计 实战接口开发:python + flask + mysql + redis(根据反馈,持续细化更新。。。)

实战接口开发:python + flask + mysql + redis(根据反馈,持续细化更新。。。)

#实战接口开发:python + flask + mysql + redis(根据反馈,持续细化更新。。。)| 来源: 网络整理| 查看: 265

前言

自动化没练习的项目怎么办?

自动化已经成为测试的必备技能之一了,所以,很多想跳槽的测试朋友都在自学,特别是最实用的接口自动化,

但是很多人因为没有可以练手的项目而苦恼,最终导致缺乏实战经验,其实,完全可以自己开发个简单项目练手,

本文,就带大家开发个简单的项目,只包含后端接口,使用的技术栈是:python + flask + mysql + redis,为了练习python基础,没有使用组件。

  python:很容易入门的语言,三方库非常丰富,不用我们自己造轮子

  flask:轻量级的web开发框架,快速上手

  mysql:主流的数据库,本项目用于存储用户信息,python中可以用pymysql库操作msyql,flask中也有对应的组件

  redis:主流的缓存数据库,本项目用于存储token,python中可以用redis库操作redis

开发环境准备

相关的安装包等资料,在【测试提升圈】学习周计划网盘中。

windows下安装python(只安装3.x版本):https://www.cnblogs.com/uncleyong/p/10778792.html

windows下安装配置pycharm:请自行百度

linux基础:《鸟哥的Linux私房菜》,常用命令:https://www.cnblogs.com/uncleyong/p/10637238.html

安装linux虚拟机(当然,你也可以考虑买云服务器):https://www.cnblogs.com/uncleyong/p/10740005.html

下面是我安装的linux版本

mysql安装(建议linux下):https://www.cnblogs.com/uncleyong/p/10739530.html

客户端工具Navicat安装:https://www.cnblogs.com/uncleyong/p/10823925.html

redis安装(建议linux下):https://www.cnblogs.com/uncleyong/p/9882843.html

mysql和redis建议在linux下安装,既可以练习linux命令,又可以练习环境搭建,项目开发完后,也可以部署到linux服务器上

部分基础回顾

https://www.cnblogs.com/uncleyong/p/12230502.html

实战1:demo项目开发(开发几个涉及关联的接口) interface_demo项目需求

用户信息管理,可以注册、登录、添加用户、删除用户

注册:任何用户可以注册,对用户提交的注册信息进行校验,返回对应的信息,其中:

  用户名:必填,唯一

  密码:必填,只能6-12位,入库是加盐加密

  真实名:必填

  性别:非必填,只能0(male)或者1(female)

  电话:必填,唯一,满足电话要求,数字,且11位

登录:用户登录,成功,则保存token到redis,其中:

  用户名:必填

  密码:必填

  如果登录成功,对用户名加时间戳的字符串进行md5加密,生成的值作为token,然后将用户名作为key,token作为value,存入redis,且设置失效时间

添加用户:只能是管理员且登录成功后,才可以添加用户

  token:必填,登录成功返回的token

  添加者:必填

  用户名:必填,唯一

  真实名:必填

  性别:非必填,只能0(male)或者1(female)

  电话:必填,唯一,满足电话要求,数字,且11位

  密码:默认是123456,不填

删除用户:只能是管理员且登录成功后,才可以删除用户

  略

数据库表设计、接口开发实现(含源码)

测试提升圈专属版本:https://www.cnblogs.com/uncleyong/protected/p/12046058.html

本项目用到了主流技术栈,这些都是测试必备的:python、flask、redis基础、mysql基础、git基础、shell基础、linux、jenkins等

你也可以开发几个mock接口用于练习,推荐用flask或者springboot

比如是flask的话:

return jsonify({"code":9410,"msg":"用户名或密码不正确"})

 

实战2:demo项目测试(接口功能测试,用jmeter和postman)

实战1中,已经开发好了我们练习的项目,我们先对接口进行功能测试,

接口功能测试,我们最常用的工具是jmeter和postman

jmeter,参考:https://mp.weixin.qq.com/s/msowzis-ktMk2PL_yM_J6g

postman,参考:https://www.cnblogs.com/uncleyong/p/11268846.html

实战3:自动化测试框架设计、开发、demo项目自动化测试

实现了关联、测试数据分离等等,拿来即可使用:

测试提升圈专属版本:https://www.cnblogs.com/uncleyong/p/12046070.html

多个版本的自动化测试框架,例如:

  unittest + 关联 + excle + ddt

  自己造轮子(未使用unittest、pytest等)

实战4:自动化测试持续集成环境搭建(自动化构建、部署、测试、报告)

开发提交代码到远程仓库后,触发自动化构建→自动化部署→自动化测试...

自动化持续集成环境搭建(上):git + maven+ jenkins:https://www.cnblogs.com/uncleyong/protected/p/10821832.html

自动化持续集成环境搭建(下):git + maven+ jenkins

测试提升圈专属版本:https://www.cnblogs.com/uncleyong/protected/p/12229900.html

对外分享版本:https://mp.weixin.qq.com/s/CVrn2XuL3lQj9slUqx73_A

docker版后续更新。

后记

进阶提升,性能 or 测开?

通过这几个实战,相信认真实操过的朋友肯定收获不少,不管是编码,还是linux命令及环境搭建,或者是相关的工具使用;

总之,自动化只是回归,不要满足于自动化,多学一个其它测试方向,会更有竞争力;

接下来你需要进阶的方向可能是性能测试、或者测试开发,关于二者该怎么选择,可以参考:https://www.cnblogs.com/uncleyong/p/11995605.html

性能测试:从0到实战

https://www.cnblogs.com/uncleyong/p/12311432.html

实战接口开发:python + flask + mysql + redis(根据反馈,持续细化更新。。。)的更多相关文章 demo项目开发(Python+flask+mysql+redis只包含后端接口)

[demo项目开发需求] 用户信息管理,可以注册.登录.添加用户.删除用户 注册:任何用户可以注册,对用户提交的注册信息进行校验,返回对应的信息,其中: 用户名:必填,唯一 密码:必填,只能6-12位 ...

Python+Flask+MysqL的web建设技术过程

一.前言(个人学期总结) 个人总结一下这学期对于Python+Flask+MysqL的web建设技术过程的学习体会,Flask小辣椒框架相对于其他框架而言,更加稳定,不会有莫名其妙的错误,容错性强,运 ...

Python+Flask+MysqL的web技术建站过程

1.个人学期总结 时间过得飞快,转眼间2017年就要过去.这一年,我学习JSP和Python,哪一门都像一样新的东西,之前从来没有学习过. 这里我就用我学习过的Python和大家分享一下,我是怎么从一 ...

个人学期总结及Python+Flask+MysqL的web建设技术过程

一个学期即将过去,我们也迎来了2018年.这个学期,首次接触了web网站开发建设,不仅是这门课程,还有另外一门用idea的gradle框架来制作网页. 很显然,用python语言的flask框架更加简 ...

前端和后端的数据交互(jquery ajax+python flask+mysql)

上web课的时候老师布置的一个实验,要求省市连动,基本要求如下: 1.用select选中一个省份. 2.省份数据传送到服务器,服务器从数据库中搜索对应城市信息. 3.将城市信息返回客户,客户用sele ...

python3.4学习笔记(二十五) Python 调用mysql redis实例代码

python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...

Python操作MySQL+Redis+MongoDB

1-1 python操作三大主流数据库导学篇 1-2 数据库简介 1-3 MySQL简介 2-1 MySQL安装及配置 2-2 MySQL图形化管理工具 2-3 SQL语法基础-创建并使用数据库 2- ...

从docker到docker-compose部署一个nginx+flask+mysql+redis应用

目的是把一个flask项目的mysql数据库.redis数据库.flask应用.nginx服务分别装到四个容器中,然后用docker-compose命令同时启动与关闭 一.安装docker Docke ...

java 微信自定义菜单 java微信接口开发 公众平台 SSM redis shiro 多数据源

A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成 ...

随机推荐 ASP.Net WebForm温故知新学习笔记:一、aspx与服务器控件探秘

开篇:毫无疑问,ASP.Net WebForm是微软推出的一个跨时代的Web开发模式,它将WinForm开发模式的快捷便利的优点移植到了Web开发上,我们只要学会三步:拖控件→设属性→绑事件,便可以行 ...

Codeforces Round B. Buttons

Manao is trying to open a rather challenging lock. The lock has n buttons on it and to open it, you ...

java编程思想-复用类总结

今天继续读,读到了复用类一章,看到总结写的很好,现贴上来,给大家分享. 继承和组合都能从现有类型生成新类型.组合一般是将现有类型作为新类型底层实现的一部分来加以复用, ...

B/S和C/S测试的区别

    B/S(Brower/Server)以访问方式为主,包含客户端浏览器.web应用服务器.数据库服务器的软件系统.一般的B/S结构,都是多层架构的,有界面层.业务逻辑层.数据层.由于这种结构不需 ...

Topcoder SRM 630 (500 floyed 暴力 _builtin_popcount())

题意:给n个点,保证图联通,给点相连的距离,求一个最多的点,这些点之间的距离都是相同的. 分析: 下面的代码是我们房间第一的大神的,写的很简洁,我的思路和他的一样,但是我不知道错哪了. 思路是暴力枚举 ...

在Xcode中如何屏蔽某个源文件的编译警告信息

某些时候如果我们的源码在编译过程中出现大量的编译警告时,看起来是挺不爽的:但又确实没办法解决警告问题的时候,我们可以使用下面的方法来屏蔽指定的某个文件的所有警告信息. 1.在Xcode中选中工程文件. ...

POJ 2352 Stars 树阵

标题效果:特定y值在升序一些点.一个点的定义level值点的数目对于其左下,每个请求level多少分. 思维:因为y值它是按升序.所以分的差距仅仅是推断x值相比之前的大.就用树状数组维护. CODE: ...

hive函数--编码解码

以UTF-8为例: 测试字符串:☕️午后咖啡☕️ 一.编码 hive"); 输出: %E2%98%95%EF%B8%8F%E5%8D%88%E5%90%8E%E5%92%96%E5%95%A ...

IntelliJ IDEA生成live template(代码模板)

IntelliJ IDEA生成live template(代码模板) 一.进入live template模板 快捷键:Ctrl+Shift+A进入Find Action,输入live template ...

iOS开发调试篇—Print Description of ;string;

Print Description of "string":把 string 的信息输出到控制台.Copy:复制 string 的信息,包含变量名,类名和值.View Value ...



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有